PyCon JP 2014 基調講演
2014-09-17
資料
-----
https://gyazo.com/fda1859e859adeacdb089ea10e80ce52
Rediscover with Pythonサイボウズ・ラボ西尾泰和質疑応答加筆バージョン2014-09-17 14年9月17日水曜日1
https://gyazo.com/1444722ab15528d6581e835f5c2b1110
evil pythonista 14年9月17日水曜日2
https://gyazo.com/bb0aad30cc2ded2d639218df1bab90df
evil pythonista 14年9月17日水曜日3
https://gyazo.com/14f58fe4561a01e4457ad4ca5f10244c
evil pythonista •2006年LL Ring「じゃんけん2.0」14年9月17日水曜日3
https://gyazo.com/339fecf1958241347d1f144ee7ef1092
evil pythonista •2006年LL Ring「じゃんけん2.0」•いろいろな言語のプログラマが各言語でプログラムを書き、通信対戦でじゃんけんする14年9月17日水曜日3
https://gyazo.com/1cc4bec01a4aa6221d4b2506dd53d1bc
evil pythonista •2006年LL Ring「じゃんけん2.0」•いろいろな言語のプログラマが各言語でプログラムを書き、通信対戦でじゃんけんする•この程度のプログラムなら1行で書ける! 14年9月17日水曜日3
https://gyazo.com/e779e45a303e1b3d1be958b54ff64399
改行のある構文は使えない•if •while •try..except 14年9月17日水曜日4
https://gyazo.com/7b30e6a949b0a7c03dbead1d3ec49727
How to? 14年9月17日水曜日5
https://gyazo.com/de8f4b6189c8d692e7ea2fde0c27af8b
How to? •if →and/orの短絡評価を使う14年9月17日水曜日5
https://gyazo.com/0322585c6f9925b75b5cba648855a945
How to? •if →and/orの短絡評価を使う•while →無限にyieldする便利ライブラリfrom itertools import count 14年9月17日水曜日5
https://gyazo.com/480cc6d77c994c18b49ee9012118afe2
How to? •if →and/orの短絡評価を使う•while →無限にyieldする便利ライブラリfrom itertools import count •try..except →“例外を投げて死ぬ可能性のある処理"を子プロセスとして起動し、終了時のエラー出力を読む14年9月17日水曜日5
https://gyazo.com/a8ceb93cfe9e34858e89b8421b394a08
https://gyazo.com/32075826201abc3b1aae6fc096808270
まじめな自己紹介14年9月17日水曜日7
https://gyazo.com/fe0eb2b50b4241e8b18a7708e0c0bb83
まじめな自己紹介•サイボウズ・ラボ14年9月17日水曜日7
https://gyazo.com/0694614f6cf3c1f67ec7847a1a18888a
まじめな自己紹介•サイボウズ・ラボ•次世代のグループウェアの基盤となる技術を中長期視点で研究開発14年9月17日水曜日7
https://gyazo.com/38c91598d2c8e47e2a9a162d3aec7c08
まじめな自己紹介•サイボウズ・ラボ•次世代のグループウェアの基盤となる技術を中長期視点で研究開発•ワンライナーは書いていません14年9月17日水曜日7
https://gyazo.com/c3acc8af92a2d5f7891b61547b31db49
サイボウズにおけるPython利用シーン•自動化•インフラ•解析14年9月17日水曜日8
https://gyazo.com/61eeb26a282d594e92d2d65e16a0f151
自動化•VM・ストレージ・各種設定の管理•テスト:記述するのもモックを作るのも楽•Jenkinsのスクリプトとして→RequestsでkintoneのAPIを叩いたり14年9月17日水曜日9
https://gyazo.com/081b2ce6f77cfb211a36d1cb7bb98e5e
インフラ14年9月17日水曜日10
https://gyazo.com/4a40b1809cad471e4f2d21667e80ec14
https://gyazo.com/c5682d9708afcdfc7a5b92e8340ab3ae
https://gyazo.com/ad58594f8f8b9862d6365916c6eed958
https://gyazo.com/89d5cc2d486eaae58ebb9d9173cae0c0
インフラ•性能が要求される部分はC++やJava •Pythonでそれらのコンポーネントをつなぎ合わせる14年9月17日水曜日14
https://gyazo.com/d69eab2988204799896c9b6d42699416
解析14年9月17日水曜日15
https://gyazo.com/f821b06271620bf767f21cb33ad58568
解析•データの収集14年9月17日水曜日15
https://gyazo.com/4086cdc6fe7ac9a48d349b7b7da2c3b3
解析•データの収集•クレンジング・フィルタリング14年9月17日水曜日15
https://gyazo.com/3c1b0edc7aa6b666a0b0cfd786b8e769
解析•データの収集•クレンジング・フィルタリング•統計処理もNumPy・SciPyでお手軽14年9月17日水曜日15
https://gyazo.com/41805d2584da6a37c686ccad67cbdc27
解析•データの収集•クレンジング・フィルタリング•統計処理もNumPy・SciPyでお手軽from scipy.stats import chi2_contingency chi2_contingency(data) 14年9月17日水曜日15
https://gyazo.com/b503168e6f9976df2fece3eeb8ec83f8
サイボウズにおけるPython利用シーン•自動化•インフラ•解析→具体例を話します14年9月17日水曜日16
https://gyazo.com/f07fa6a48ab6c9ad7ad13e266a8be0c2
14年9月17日水曜日17
https://gyazo.com/e80d5443dc2b0ff042b12be816debe66
https://gyazo.com/99d219492e19b30da28a0ad8278880fe
Recommend charts using statistics of data distribution 14年9月17日水曜日19
https://gyazo.com/ca05ac4d41d907a856c53b15cf8a8b01
https://gyazo.com/1cfbb68576409a4a813b098a235a7433
What is groupware? 14年9月17日水曜日21
https://gyazo.com/65b601a2351297ef674fd836f235dccb
What is groupware? Group + Software 14年9月17日水曜日21
https://gyazo.com/670dcf500a69b30c6531b824b2eecc75
Augmenting Human Intellectソフトウェアによって人間の能力を増強するエンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 14年9月17日水曜日22
https://gyazo.com/098521dc1f3ae178d1a7ed3bd7aa7b95
Augmenting Group Intellectソフトウェアによって集団の能力を増強する=グループウェア14年9月17日水曜日23
https://gyazo.com/1be57cb5d28d15f6f6b4a778a097a721
word2vec文章を与えるとコンピュータが単語の意味を理解する14年9月17日水曜日24
https://gyazo.com/ba76af3f957d7600a0798a3c271976ca
人間コンピュータ14年9月17日水曜日25
https://gyazo.com/2c309afe23780705bc01f61c3cf67f07
人間+コンピュータ=増強された人間人間14年9月17日水曜日26
https://gyazo.com/3f1d822c0e7580942abcf493d2938932
14年9月17日水曜日27
https://gyazo.com/4c8fb67850e6e0bf4b05158d969da5b3
14年9月17日水曜日28
https://gyazo.com/25ba30514cb43128716f74fbf07c8341
14年9月17日水曜日“やる気の出るアドバイス"で検索29
https://gyazo.com/baff6c6f8fcd682b4e133d211af867ad
14 channels brain wave sensor 14年9月17日水曜日30
https://gyazo.com/af15c6182f11b826faf5d6099013d3aa
Human→Machine keyboard switch mouse camera touch panel (multi-touch) scanner Machine→Human paper CRT liquid crystal e-ink 3D TV HMD 14年9月17日水曜日31
https://gyazo.com/2f6456013c0c4ba2e30ef2ad6cb71dc8
Machine→Human paper CRT liquid crystal e-ink 3D TV HMD book e-book 14年9月17日水曜日32
https://gyazo.com/9463089a4a4e1a235936c49b98cca22a
人間増強の四要素•1:人工物(Artifacts):コンピュータ、ソフトウェア、etc. •2:言語(Language):概念を表す専門用語、デザパタ、etc. •3:方法論(Methodology):問題解決のための手順、戦略、etc. •4:教育(Training): 13を使うスキルを身につける14年9月17日水曜日エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 33
https://gyazo.com/210b1c31467a32db39ef0e1f5388e5c2
人間増強の四要素•1:人工物(Artifacts):コンピュータ、ソフトウェア、etc. •2:言語(Language):概念を表す専門用語、デザパタ、etc. •3:方法論(Methodology):問題解決のための手順、戦略、etc. •4:教育(Training): 13を使うスキルを身につける14年9月17日水曜日エンゲルバート"Augmenting Human Intellect: A Conceptual Framework" (1962) 34
https://gyazo.com/f7318c16156cad40212cefeb8063ce4b
theme of this conference: Rediscover with Python 14年9月17日水曜日35
https://gyazo.com/8c8f5b522d3f6b3ff9f722ed877b7b4c
How to discover? →Methodology to find unknown 14年9月17日水曜日36
https://gyazo.com/6836865773947cb8ee79aed896c4169c
14年9月17日水曜日37
https://gyazo.com/33f26484b1e81e3b4ce23003a867127d
14年9月17日水曜日38
https://gyazo.com/957013f122389dcec04f42abe2cfd896
14年9月17日水曜日39
https://gyazo.com/acef04dd4524cfb3b01ee8240d5f56df
How to discover? →Change Perspective 14年9月17日水曜日40
https://gyazo.com/44b20bf8e055d2469449ae6d0a3c78e4
Change Perspective •どんな視点で物事を見ても、かならず見えていない部分がある•見えてない部分を見るために視点を変える14年9月17日水曜日41
https://gyazo.com/4c0d1d20772727c1e58dde408da1fe95
known (cid:15511) unknown 14年9月17日水曜日42
https://gyazo.com/c93cc1bc92ee2fb7ac365003cac01221
明らかに知らない43明らかに知っている14年9月17日水曜日
https://gyazo.com/ea315a7f20d080f4bda7c781bfa81961
明らかに知らない不明明らかに知っている14年9月17日水曜日44
https://gyazo.com/0393f317e2ebc3611bfa032385f3eb6a
盲点(blind spot) •「明らかに知ってる」領域と「明らかに知らない」領域の間に「知らないことを知らない」領域がある。•見えていないのに、見えてないことに気づいていない。それが盲点。14年9月17日水曜日45
https://gyazo.com/137f774736da504fea5b0616a5e65fbb
明らかに知らない明らかに知っている14年9月17日水曜日「どこまで知っているのか」を明らかにする46
https://gyazo.com/7e6d560146bade90da7e8ae72dd6f4f7
明らかに知らない明らかに知っている14年9月17日水曜日←盲点blindspot 47
https://gyazo.com/73cebe7452b1f05de368474b3de26bf9
明らかに知らない明らかに知っている14年9月17日水曜日←盲点blindspot 48
https://gyazo.com/16bdb793986f7f0608157465c3f9ba21
How to find blind spot? 14年9月17日水曜日49
https://gyazo.com/31fed13f71a270ea327a9fa4c5452ce5
Comparison History Experience 14年9月17日水曜日50
https://gyazo.com/d1dd52282b1d70d1f0d160ae70db9919
Comparison History Experience + Abstraction Communication 14年9月17日水曜日51
https://gyazo.com/a405b7b022dd04140b5bfb77000487c0
How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日52
https://gyazo.com/3dbe6703cb129cb697d7cd88baf08763
Comparison •例:複数言語を比較することで気づく「あれ?Rubyでは0は真なのか?! Pythonでは偽だよな?!」「言語によって何が真か異なるのか?」「他の言語ではどうなってるんだろう?」「Pythonではどう定義されている?」14年9月17日水曜日object.__nonzero__(self) Called to implement truth value testing and the built-in operation bool(); 53
https://gyazo.com/3e873db62d25071facc4c8c9d1f41f88
https://gyazo.com/c897927d6e0a293855e8feb3645bb540
https://gyazo.com/8d4584fb2e8c70bc917a9b5201cb9601
Abstraction •具体例を抽象化したものに触れることで自分の経験を言語化する「ああ、なんとなく使っていたこの書き方って、Mediatorパターンって名前がついていたのか!」14年9月17日水曜日56
https://gyazo.com/ab2a3bf1eee04e5c2c9004ee5e22c24c
Communication •経験の異なる他人と会話することで盲点に気づく「こういう問題に困ってんだよね」「それこうしたらいいんじゃない?」「なるほど、その発想はなかった!」「いや、GUIでは普通の発想だよ」「俺サーバ周りが専門だからなぁ」14年9月17日水曜日57
https://gyazo.com/55480a2dfce4875213bf19f5f3efe994
How to find blind spot? Comparison History Experience Abstraction Communication 14年9月17日水曜日58
https://gyazo.com/dd6cd0c1c6bf507fc686f68bef80364f
Communication 14年9月17日水曜日59
https://gyazo.com/7636b07516c7ddabee712511cc7743f0
https://gyazo.com/1530146e804d9cb6ddbcc4be73c7de14
https://gyazo.com/89bb215a43cc9a38704afd817b3bdd7e
Q:「盲点に気づくチャンス」となる情報を見ても認知的不協和を起こして「そんなはずはない」と思ってしまう人がいるのでは。組織のaugmentを考える上ではそういう人をどうすればよいだろうか?どう啓蒙する? 14年9月17日水曜日62
https://gyazo.com/efe92380e6b9349844dc29a1c9462109
https://gyazo.com/71839683a1f12bf9f7055ee211bae2b0
A:言いたいことは2点ある。まず「他人をどう変えるか」というスタンスではうまくいかない。自分が変わる必要がある。14年9月17日水曜日64
https://gyazo.com/c84b953c3d291c6ff9b8459b935278f1
A:次に「見えているのに見ていない」状態にハマることは自分も含めてよくあること、と気づくこと。14年9月17日水曜日65
https://gyazo.com/1c7875b22363d38415e3b754c23c57d8
A:最初は小さなものでよいので、その気付きから有益な結果が得られる「成功体験」を積むこと。これが自信につながる。14年9月17日水曜日66
https://gyazo.com/66498d8bceaf7de23ff6c7f2c6ec5c3b
PDCAサイクルとU曲線の関係U曲線補足スライドU曲線状態行動14年9月17日水曜日67 C・オットー・シャーマー「U理論」
https://gyazo.com/448f224c8af5161a7bd84baaf82a9bad
PDCAサイクルとU曲線の関係U曲線補足スライドU曲線←見えているのに思い込みにとらわれてきちんと見てない状態状態行動14年9月17日水曜日68 C・オットー・シャーマー「U理論」
https://gyazo.com/20491d13b54e9962ee3504aaafbe4b8f
PDCAサイクルとU曲線の関係U曲線補足スライドU曲線←見てはいるが、自分の視点からだけ。状態行動「奴らはしないから」と考えたりする。自己と他者の間に境界線を引いて14年9月17日水曜日69 C・オットー・シャーマー「U理論」
https://gyazo.com/2aacbd892f736078168f3fc654dfec28
Q:モデリングをどうやってやるかも大事なのではないか? 14年9月17日水曜日70
https://gyazo.com/88d460ba6e3c48d26346b649cc3592d0
A:はい、大事です。14年9月17日水曜日71
https://gyazo.com/f4beca62e8f861f635dbf51dc2a48dfa
https://gyazo.com/ddac14813373d86e2fe01c925556a5ff
A:経験から仮説が作られる。「理解した」という気持ちも仮説。仮説は実験によって検証する必要がある。理解に基づいて行動し結果を確認する14年9月17日水曜日73
https://gyazo.com/ec2ecd588e57bc9a3f096ad1e8902d6e
A:行動した結果が予想と異なった場合はモデルを修正する必要がある。これを繰り返していくことで「正しい可能性の高い」モデルを作り、それを組み合わせることでより大きなモデルを作る。これが一つの方法論14年9月17日水曜日74
https://gyazo.com/55e21b74f4048c2582234ba24201b201
A:もう一つの方法論として実験が容易でない人文科学では、KJ法やグラウンデッド・セオリーが使われる。14年9月17日水曜日75
https://gyazo.com/286e68272900d8d513bb8720f27e5efa
A:まずインタビューなどで大量にデータを集め、それを自分の偏見で「これはノイズだ」とフィルタリングすることなく一覧できるようにする14年9月17日水曜日76
https://gyazo.com/d1004d1a441b56b6b115611bb1c76ded
A:人間の作業記憶は7つくらいしかないが、データを紙に書いて机の上に広げれば100とか200とかを見ることができる14年9月17日水曜日77
https://gyazo.com/41165932d7952bdcccf8ee0dbd6f0a50
A: 100のデータを一覧できる状態を作った上で、机の上で動かすことでモデルを組み立てていく、これがKJ法(会場では言いそこねたが、既存の構造をトップダウンに当てはめるのではなく、データからボトムアップで構造を組み立てていくのも重要なポイント) (ちなみに上記で紹介した拙著書籍・特集記事は14年9月17日水曜日78 KJ法でモデル化されている) https://gyazo.com/d86b824e7630a2e7ca5e40d984095785
Office Hourでの質問Q:盲点に気づく5つの方法は並列ではなく、時間軸で前後関係があるのではないか? 14年9月17日水曜日79
https://gyazo.com/13ce926778f4b1fa12ea4681cf0f47e6
A:それは盲点だった!確かに抽象はいきなり最初から使うことはできない。プログラミングの経験がない人がデザインパターンの本を読んでも自分の経験と結びつかない。14年9月17日水曜日80
https://gyazo.com/19090fc3db0420f10b458ede89bf713c
Q:テスタの間でテストのノウハウを共有したいがどうしたらいいか(詳細な状況説明は省略) 14年9月17日水曜日81
https://gyazo.com/742ef63d4304908f71e1305bb93bc21f
A:言語化されていない知識をどうやって共有するかという問題だと思える。一つの方法論は「一緒に作業」だ。14年9月17日水曜日82
https://gyazo.com/6e9e54c395305cce9d5b6980ffa52594
A:一緒に作業することでノウハウを言語化しないまま共有することができる。更に「操作せずに指示する人と操作する人」を分ければ指示するために知識の言語化が促される14年9月17日水曜日参考文献“凡才の集団は孤高の天才に勝る" 83
https://gyazo.com/78ecec7921a8ba1333ef099f33efb60f
A:言語化が行われて初めて、マニュアル化などができるようになる。言語化は結構難しいタスクなので、そのスキルを鍛えずにいきなり個々人に任せるとうまくいかない。14年9月17日水曜日84
https://gyazo.com/8bb4f6a53718d9260b9d5db280ae7142
言語化されていない知識補足スライドこのスパイラルを回すことで知識が創造される『知識創造企業』p93 85 14年9月17日水曜日
https://gyazo.com/451ff242769a4fc6a7f4317ecca87633
言語化されていない知識補足スライド↑ペアプロ・共同作業はここに相当するこのスパイラルを回すことで知識が創造される『知識創造企業』p93 86 14年9月17日水曜日
https://gyazo.com/ee36b55d320f8bdcf5506b3e6b35085e
Q:私は情報の言語化のためのテンプレートを作っている。質問に答えていくと必要な情報が揃う。14年9月17日水曜日87
https://gyazo.com/5492a2630d9c76a07e718cc558413513
A:それは良いアプローチ。「言語化しろ」と言われてできない人でも、具体的に質問をされると答えられることがよくある。適切な質問を投げかけることは重要。14年9月17日水曜日88
https://gyazo.com/1fea61f0d95f3e65f0426531a05eade5
A:そういう意味でテンプレート化にはメリットがある。しかし、テンプレートで表現できない情報が捨てられてしまうデメリットに気をつける必要がある。新しい重要な情報は定型化されていない。14年9月17日水曜日89